1. Field of the Invention
The invention relates to a method and system for integrating a computer modeling process in which a Computer Numerically Controlled (CNC) machine is used for manufacture and in particular to a CNC machine having a CNC controller with Non-Uniform Rational B-Splines (NURBS) interpolation capabilities.
2. Background of the Invention
One method of fabricating products is to use a Computer Numerical Controlled (CNC) machine. A product suitable for CNC machining process is typically designed using modeling software implemented in a computer. FIG. 1 illustrates a prior art system 100 comprising a computer 110 and a CNC machine 120. The computer 110 is implemented with Computer Aided Design (CAD) 112, Computer Aided Engineering (CAE) 114 and Computer Aided Manufacturing (CAM) 116 software that allows a designer to model the product that is suitable for fabrication by the CNC machine 120. Usually a product model 118 is initially drawn in 2-dimensional (2-D) drawing using CAD software 112. The CAD software 112 converts the 2-D drawing into 3-dimensional (3-D) drawing, which represents a 3-D model of the product model 118. The 3-D model is tested using CAE software 114 for structural, thermal and NVH (noise, vibration and harshness) conditions. If the test conditions are satisfactory, the 3-D model is transformed using the CAM software 116 into instruction codes 119 that are understandable by the CNC machine 120.
One well known format of CNC instruction codes is known as “g-codes.” G-codes are translation instructions in which G0 represents a linear movement, and G02 and G03 represent circular or arcuate movements for the CNC machine 120. A contour that cannot be represented by G02 or G03 instructions is represented by series of short lines and/or curves that approximate the contour. The process for creating a g-code file involves defining a series of g-codes that represent various contours of the product model 118, and defining the requirements of the CNC machine 120. CNC machine 120 requirements include identifying and labeling features of the 3-D model, selecting cutting tools (that include pre-defining material properties), pre-defining finishing, determining machining speeds and defining an orientation of a blank material.
Using rational spline curves to define contours of a product model have become popular. In particular, a form of rational spline curve instruction code that is quite popular is the Non-Uniform Rational B-Splines (NURBS). NURBS allow a complex contour to be represented by a fewer number of codes than those using g-codes. Furthermore, NURBS provide for a better curvature control. NURBS equations are used to produce a mesh that effectively describes the product being modeled and also provides for an overlap between each surface description equation.
After the instruction codes 119 defining the product model 118 are formulated, the instruction codes 119 are passed to the CNC Controller 122 of the CNC machine 120. The CNC controller 122 uses the instruction codes 119 (that can comprise of g-codes and NURBS, among others) to appropriately control the cutting tool 124 to machine the material blank into the machined part.
The above described process requires a large amount of manual (human) interventions particularly at the CAD/CAE stage and CAM stage, and between the CAM stage and CNC machine stage. For instance, the g-code file activities described above often require a significant level of documentation that require a skilled personnel and is rather time consuming. Because the g-code file is usually created with a particular CNC machine in mind and also reflects a particular approach and style of the person performing the task, portablility from machine to machine is usually difficult to achieve between machine to machine. In addition, calibration and orientation problems can arise at the CNC stage due to lack of process planning and optimization at the CAD/CAE stage and CAM stage.
Attempts to integrate between the various stages have resulted in a discipline known as “Computer Aided Process Planning (CAPP).” FIG. 2 illustrates a flow process of a known CAPP system. At block 202, a CAD data file that represents the three-dimensional (3-D) drawing of the product model is passed to block 204 where the CAD data file is converted into a universal design data model. Standards to perform this conversion process have included specifications such as Initial Graphics Exchange Specification (IGES) and Product Data Exchange Specification (PDES). These standards provide basis for an ISO Standard for Transfer and Exchange of Product Model Data (STEP) that, in turn, provides the basis for automated information transfer from the CAD data file to the universal design data model. Further reading concerning the aforementioned standards are found in David D. Bedworth, Mark R. Henderson, Philip M. Wolfe, Computer Integrated Design and Manufacturing, (McGraw-Hill, Inc., 1991).
The universal design data model is passed to block 206, where various part features of the data model are defined by a part feature recognition software. Software with part features recognition capabilities include Pro/Engineer software available from Parametric Technology based in Waltham, Mass. and I-DEAS software available from Structural Dynamics Research Corporation based in Milford, Ohio. Also, the reference Computer Integrated Design and Manufacturing describes various references pertaining to part features recognition endeavors. With the various part features of the data model defined, the universal design data model is passed to block 208 where it is converted to CNC instruction codes. The compilation of the CNC instruction codes therefore relies, in large part, on the feature recognition software to define the various part features of the universal design data model.
In addition, the engineering specification needs to be described in terms that are understandable by the CAM software. A known approach focuses on the notion of part feature recognition in which individual features such as “hole”, “slot”, “chamfer”, “gear tooth” and etc. are defined. Because direct recognition of these features is problematic, a coding scheme accompanied with textual description is generally used. A number of packages have been developed to convert the engineering specification into a series of feature definitions, however these have provided limited levels of automation that is generally limited to relatively simple features.
It is desirable to have a more integrated system that optimizes the CNC machining process, minimizes documentation in the instruction code files and further minimizes human intervention.